package algothrim

import (
	"sync"
)

// 管程

// Counter 是一个简单的线程安全计数器
type Counter struct {
	mu    sync.RWMutex // 互斥锁保证互斥访问
	value int
}

// Increment 增加计数器的值
func (c *Counter) Increment() {
	c.mu.Lock()         // 在修改前加锁
	defer c.mu.Unlock() // 方法结束时解锁
	c.value++
}

// Value 返回当前计数器的值
func (c *Counter) Value() int {
	c.mu.RLock()         // 在读取前加锁
	defer c.mu.RUnlock() // 方法结束时解锁
	return c.value
}

func main() {
	// 示例使用Counter
}
